<!DOCTYPE html>
<html>
<head><meta name="generator" content="Hexo 3.8.0">
  <meta charset="utf-8">
  
  <title>JAVA</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  
  
  
  
  <meta property="og:type" content="website">
<meta property="og:title" content="JAVA">
<meta property="og:url" content="https://jameslin23.gitee.io/page/6/index.html">
<meta property="og:site_name" content="JAVA">
<meta property="og:locale" content="zh-CN">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="JAVA">
  
    <link rel="alternate" href="/atom.xml" title="JAVA" type="application/atom+xml">
  

  

  <link rel="icon" href="/css/images/mylogo.jpg">
  <link rel="apple-touch-icon" href="/css/images/mylogo.jpg">
  
    <link href="//fonts.googleapis.com/css?family=Source+Code+Pro" rel="stylesheet" type="text/css">
  
  <link href="https://fonts.googleapis.com/css?family=Open+Sans|Montserrat:700" rel="stylesheet" type="text/css">
  <link href="https://fonts.googleapis.com/css?family=Roboto:400,300,300italic,400italic" rel="stylesheet" type="text/css">
  <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
  <style type="text/css">
    @font-face{font-family:futura-pt; src:url("/css/fonts/FuturaPTBold.otf") format("woff");font-weight:500;font-style:normal;}
    @font-face{font-family:futura-pt-light; src:url("/css/fonts/FuturaPTBook.otf") format("woff");font-weight:lighter;font-style:normal;}
    @font-face{font-family:futura-pt-italic; src:url("/css/fonts/FuturaPTBookOblique.otf") format("woff");font-weight:400;font-style:italic;}
}

  </style>
  <link rel="stylesheet" href="/css/style.css">

  <script src="/js/jquery-3.1.1.min.js"></script>
  <script src="/js/bootstrap.js"></script>

  <!-- Bootstrap core CSS -->
  <link rel="stylesheet" href="/css/bootstrap.css">

  
    <link rel="stylesheet" href="/css/home.css">
  

  

  

  
  
  
    <link rel="stylesheet" href="/css/vdonate.css">
  

</head>
</html>


  <body>


  
    <header id="header">

	<!-- 背景图模式 -->
	

    
      <div id="intrologo" class="intro-logo" style="background-position:center; background-repeat:no-repeat; background-image: url(); background-size: auto 100%;">

      <!-- Support rolling -->  
        
        <section class="awSlider">
          <div class="carousel slide carousel-fade " data-ride="carousel">

            <!-- Wrapper for slides -->
            <div class="carousel-inner">
               
                  
                    <div class="item active">
                  
                    <img id="carousel-img0" src="/css/images/pose.jpg">
                  </div>

                  <!-- 自适应大图 -->
                  <script>
                      var img0 = new Image();
                      var imageTag0 = document.getElementById("carousel-img0");
                      img0.src = imageTag0.src;
                      img0.onload=function(){
                        if (img0.width / img0.height <= document.body.clientWidth / document.body.clientHeight) {
                          imageTag0.style.width = document.body.clientWidth + "px";
                        } else {
                          imageTag0.style.height = document.body.clientHeight + "px";
                          imageTag0.style.marginLeft = -(document.body.clientHeight * img0.width / img0.height - document.body.clientWidth) / 2 + "px";
                        }
                      };
                  </script>
                
            </div>

            <!-- Controls -->
            <a class="left carousel-control" href=".carousel" role="button" data-slide="prev">
              <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
              <span class="sr-only">Geri</span>
            </a>
            <a class="right carousel-control" href=".carousel" role="button" data-slide="next">
              <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
              <span class="sr-only">İleri</span>
            </a>
          </div>
        </section>
        <script>
          $('section.awSlider .carousel').carousel({
              pause: '',
              interval: 5000
          });
          var startImage = $('section.awSlider .item.active > img').attr('src');
          $('section.awSlider .carousel').on('slid.bs.carousel', function () {
              var bscn = $(this).find('.item.active > img').attr('src');
              $('section.awSlider > img').attr('src', bscn);
          });
        </script>
      

    
 


    <canvas width="100%" height="100%"></canvas>
    <script>
      var c = document.getElementsByTagName('canvas')[0],
          x = c.getContext('2d'),
          w = window.innerWidth,
          h = window.innerHeight,
          pr = window.devicePixelRatio || 1,
          f = 90,
          q,
          m = Math,
          r = 0,
          u = m.PI*2,
          v = m.cos,
          z = m.random
      c.width = w*pr
      c.height = h*pr
      x.scale(pr, pr)
      x.globalAlpha = 0.6

      <!-- 折线Polyline背景 -->
      
    </script>
    

    
      <div id="homelogo" class="homelogo" style="background: rgba(255,255,255,1);"> 
    

        
          <div class="homelogoback" style="border: 1px solid #404040;">
            <h1><a href="#content" id="logo">JAVA</a></h1>
            <h3></h3>
            <h5>LeBron Tao</h5>
            <!-- <p><a href="https://github.com/iTimeTraveler" target="_blank">Github</a></p> -->
          </div>
        
    
    </div>
  </div>

  <!-- 自适应主页背景大图 -->
  

 <!-- home_logo_image居中 -->
 
    <script>
        var homelogodiv = document.getElementById("homelogo");
        if (document.all.homelogo.offsetWidth > document.body.clientWidth) {
          homelogodiv.style.width = document.body.clientWidth + "px";
          homelogodiv.style.marginLeft = document.body.clientWidth * -0.5 + "px";
        } else {
          homelogodiv.style.width = homelogodiv.clientWidth  + "px";
          homelogodiv.style.marginLeft = (homelogodiv.clientWidth)  * -0.5 + "px";
        }
    </script>
  

  <div class="intro-navigate">
      <p class="navigater-list">
        
          <a id="beautifont" class="main-nav-link" href="/">首页</a>
        
          <a id="beautifont" class="main-nav-link" href="/archives">归档</a>
        
          <a id="beautifont" class="main-nav-link" href="/categories">分类</a>
        
          <a id="beautifont" class="main-nav-link" href="/tags">标签</a>
        
          <a id="beautifont" class="main-nav-link" href="/about">关于</a>
        
      </p>
  </div>

</header>
  
  <div id="container">
    <div id="wrap">
      
            
      <div id="content" class="outer">
        
          <section id="main" style="float:none;">
  
    <article id="post-redis" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/04/redis/">redis</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/04/redis/" class="article-date">
	  <time datetime="2020-12-04T02:34:34.000Z" itemprop="datePublished">2020-12-04</time>
	</a>

      
    <a class="article-category-link" href="/categories/Nosql/">Nosql</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          redis基础知识
Key-Value数据库，NOSQL
存储，查询高效(Redis读的速度是110000次/秒,写的速度80000次/秒)
单线程，基于内存操作，CPU不是redis性能瓶颈，瓶颈是机器带宽和内存

存储数据结构

String



阅读数：只要点击该文章，可以使用incr key命令数字加1，完成数字记录
List



微信公众号的订阅推送，可以将文章的id记录在用户List,从List遍历文章。
Set



ZsetSorted set 是排序的 Set，去重但...
        </p>
        <p class="article-more-link">
          <a href="/2020/12/04/redis/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-ngnix" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/01/ngnix/">Nginx</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/01/ngnix/" class="article-date">
	  <time datetime="2020-12-01T06:55:34.000Z" itemprop="datePublished">2020-12-01</time>
	</a>

      
    <a class="article-category-link" href="/categories/负载均衡/">负载均衡</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          Nginx准备工作
打开官网http://nginx.org/下载nginx

nginx-1.19.5.tar.gz


安装 openssl  、zlib  、 gcc  依赖

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel


联网下载 pcre  压缩文件依赖

 1、wget http://downloads.sourceforge.net/project/pcre/pcre/8...
        </p>
        <p class="article-more-link">
          <a href="/2020/12/01/ngnix/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-RocketMQ" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/01/RocketMQ/">RocketMQ</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/01/RocketMQ/" class="article-date">
	  <time datetime="2020-12-01T00:30:33.000Z" itemprop="datePublished">2020-12-01</time>
	</a>

      
    <a class="article-category-link" href="/categories/消息队列/">消息队列</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          MQ有哪些作用?异步化提高系统性能系统解耦高并发削峰MQ技术选型
RocketMQ核心原理NameServer
 是整个消息队列中的状态服务器，集群的各个组件通过它来了解全局的信息。每个broker都会注册到所有的NameServer上，Broker和NameServer采用心跳机制,Broker会每隔30s给所有NameServer发送心跳,告诉每个nameServer自己还活着，然后NameServer会每隔10s运行一个任务，去检测一下各个Broker的最近一次心跳时间，如果某个Br...
        </p>
        <p class="article-more-link">
          <a href="/2020/12/01/RocketMQ/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-java基础" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/11/28/java基础/">零散java知识补漏</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/11/28/java基础/" class="article-date">
	  <time datetime="2020-11-28T06:45:45.000Z" itemprop="datePublished">2020-11-28</time>
	</a>

      
    <a class="article-category-link" href="/categories/java基础/">java基础</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          修饰符
private :  在同一类可见，使用对象：变量、方法。注意不能修饰类(外部类)
default: 在同一包内见，不使用任何修饰符，使用对象: 类、接口、变量、方法。
protected: 对同一包内的类和所有子类可见，使用对象：变量,方法。注意：不能修饰类(外部类)
public: 对所有类可见，使用对象: 类、接口、方法




修饰符
当前类
同包
子类
其它包



private
√
×
×
×


default
√
√
×
×


protected
√
√
√
×...
        </p>
        <p class="article-more-link">
          <a href="/2020/11/28/java基础/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-枚举" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/11/28/枚举/">枚举</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/11/28/枚举/" class="article-date">
	  <time datetime="2020-11-28T06:25:58.000Z" itemprop="datePublished">2020-11-28</time>
	</a>

      
    <a class="article-category-link" href="/categories/java基础/">java基础</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          什么是枚举
Enum类型实质是一种特殊的class，它不可以继承其他类，也不可以被其他类继承，但可以实现接口。

用途可以用来管理错误码12345678910111213141516171819202122232425262728public enum ErrorCodeEn &#123;    OK(0, "成功"),    ERROR_A(100, "错误A"),    ERROR_B(200, "错误B");     ErrorCodeEn(int number, String de...
        </p>
        <p class="article-more-link">
          <a href="/2020/11/28/枚举/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-java设计模式" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/11/27/java设计模式/">java设计模式</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/11/27/java设计模式/" class="article-date">
	  <time datetime="2020-11-27T09:21:43.000Z" itemprop="datePublished">2020-11-27</time>
	</a>

      
    <a class="article-category-link" href="/categories/java基础/">java基础</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          一、单例模式
手写单例步骤
1、私有构造函数,外部不可new对象
2、实例化对象
3、提供外部访问接口

单例模式类型1. 饿汉式123456789public class Hungry &#123;    private Hungry()&#123;&#125;    // 类初始化new对象    private final static Hungry HUNGRY = new Hungry();    public static Hungry getInstance()&#123; ...
        </p>
        <p class="article-more-link">
          <a href="/2020/11/27/java设计模式/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-hashmap" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/11/27/hashmap/">hashmap源码底层分析</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/11/27/hashmap/" class="article-date">
	  <time datetime="2020-11-27T00:15:09.000Z" itemprop="datePublished">2020-11-27</time>
	</a>

      
    <a class="article-category-link" href="/categories/java基础/">java基础</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          前期知识铺垫什么是哈希表
哈希表又叫散列表，他是一种基于快速存取的角度设计，也是一种典型的”空间换时间”的做法，数据结构可以理解为线性表,但是其中的元素不是紧密排列的,可能存在空隙。
哈希表是根据关键码值而直接进行访问的数据结构,通过把关键码值映射到表中一个位置来访问记录，以加快查找速度，这个映射函数就做散列函数。比如我们存储75个元素，但我们可能为这75个元素申请100元素空间，为了“快速存取“的目的。我们基于一种结果尽可能随机分布的固定函数h为每个元素存储位置,这样就可以避免遍历性质的...
        </p>
        <p class="article-more-link">
          <a href="/2020/11/27/hashmap/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-多线程与高并发" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/11/26/多线程与高并发/">多线程与高并发</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/11/26/多线程与高并发/" class="article-date">
	  <time datetime="2020-11-26T08:55:29.000Z" itemprop="datePublished">2020-11-26</time>
	</a>

      
    <a class="article-category-link" href="/categories/并发编程/">并发编程</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          一、并发基础1.1 并发三大特性
原子性
指一个操作是不可中断的，要么全部执行成功，要么全部失败 

有序性
程序执行顺序按照代码的先后顺序执行

可见性
指多个线程访问同一个变量时，一个线程修改了这个变量的值,其它线程能够立马看到修改的值


1.2 线程基础1. 线程的实现3种实现方式
继承Thread
实现Runable接口
实现callable接口，有返回值

2.线程5种状态
新建、就绪、运行、阻塞、死亡

3.线程之间通讯
object对象wait()，notifyAll()
...
        </p>
        <p class="article-more-link">
          <a href="/2020/11/26/多线程与高并发/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-netty-1" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/11/26/netty-1/">网络框架-Netty</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/11/26/netty-1/" class="article-date">
	  <time datetime="2020-11-26T08:27:08.000Z" itemprop="datePublished">2020-11-26</time>
	</a>

      
    <a class="article-category-link" href="/categories/网络编程/">网络编程</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          一、netty的简介
什么是Netty

Netty是一个利用java的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的API的客户端/服务器框架。


Netty构成部分Channel

Channel是NIO基本结构,他代表一个用于连接到实体如硬件设备、文件、网络套接字或程序组件,能够执行一个或者多个不同的I/O操作的开发连接。把Channel想象成一个可以”打开”或者”关闭”,”连接”或”断开”和作为传入和传出数据的运输。



Callback (回调)

callback ...
        </p>
        <p class="article-more-link">
          <a href="/2020/11/26/netty-1/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  


  <nav id="page-nav">
    
    <a class="extend prev" rel="prev" href="/page/5/">&laquo; 上一页</a><a class="page-number" href="/">1</a><span class="space">&hellip;</span><a class="page-number" href="/page/4/">4</a><a class="page-number" href="/page/5/">5</a><span class="page-number current">6</span>
  </nav>

</section>
        
      </div>
      
        <div align="center" style="margin-top: 30px;"><hr class="hr" style="margin:0px; height:3px;"></div>
      
      <footer id="footer">
  

  <div class="container">
      	<div class="row">
	      <p> Powered by <a href="http://hexo.io/" target="_blank">Hexo</a> and <a href="https://github.com/iTimeTraveler/hexo-theme-hiker" target="_blank">Hexo-theme-hiker</a> </p>
	      <p id="copyRightEn">Copyright &copy; 2013 - 2021 JAVA All Rights Reserved.</p>
	      
	      
    		<p class="busuanzi_uv">
				访客数 : <span id="busuanzi_value_site_uv"></span> |  
				访问量 : <span id="busuanzi_value_site_pv"></span>
		    </p>
  		   
		</div>

		
  </div>
</footer>


<!-- min height -->

<script>
    var wrapdiv = document.getElementById("wrap");
    var contentdiv = document.getElementById("content");
    var allheader = document.getElementById("allheader");

    wrapdiv.style.minHeight = document.body.offsetHeight + "px";
    if (allheader != null) {
      contentdiv.style.minHeight = document.body.offsetHeight - allheader.offsetHeight - document.getElementById("footer").offsetHeight + "px";
    } else {
      contentdiv.style.minHeight = document.body.offsetHeight - document.getElementById("footer").offsetHeight + "px";
    }
</script>
    </div>
    <!-- <nav id="mobile-nav">
  
    <a href="/" class="mobile-nav-link">Home</a>
  
    <a href="/archives" class="mobile-nav-link">Archives</a>
  
    <a href="/categories" class="mobile-nav-link">Categories</a>
  
    <a href="/tags" class="mobile-nav-link">Tags</a>
  
    <a href="/about" class="mobile-nav-link">About</a>
  
</nav> -->
    

<!-- mathjax config similar to math.stackexchange -->

<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    tex2jax: {
      inlineMath: [ ['$','$'], ["\\(","\\)"] ],
      processEscapes: true
    }
  });
</script>

<script type="text/x-mathjax-config">
    MathJax.Hub.Config({
      tex2jax: {
        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
      }
    });
</script>

<script type="text/x-mathjax-config">
    MathJax.Hub.Queue(function() {
        var all = MathJax.Hub.getAllJax(), i;
        for(i=0; i < all.length; i += 1) {
            all[i].SourceElement().parentNode.className += ' has-jax';
        }
    });
</script>

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>


  <link rel="stylesheet" href="/fancybox/jquery.fancybox.css">
  <script src="/fancybox/jquery.fancybox.pack.js"></script>


<script src="/js/scripts.js"></script>


  <script src="/js/home.js"></script>










	<div style="display: none;">
    <script src="https://s95.cnzz.com/z_stat.php?id=1260716016&web_id=1260716016" language="JavaScript"></script>
  </div>



	<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js">
	</script>






  </div>

  <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h2 class="modal-title" id="myModalLabel">设置</h2>
      </div>
      <hr style="margin-top:0px; margin-bottom:0px; width:80%; border-top: 3px solid #000;">
      <hr style="margin-top:2px; margin-bottom:0px; width:80%; border-top: 1px solid #000;">


      <div class="modal-body">
          <div style="margin:6px;">
            <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne" onclick="javascript:setFontSize();" aria-expanded="true" aria-controls="collapseOne">
              正文字号大小
            </a>
          </div>
          <div id="collapseOne" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingOne">
          <div class="panel-body">
            您已调整页面字体大小
          </div>
        </div>
      


          <div style="margin:6px;">
            <a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" onclick="javascript:setBackground();" aria-expanded="true" aria-controls="collapseTwo">
              夜间护眼模式
            </a>
        </div>
          <div id="collapseTwo" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo">
          <div class="panel-body">
            夜间模式已经开启，再次单击按钮即可关闭 
          </div>
        </div>

        <div>
            <a data-toggle="collapse" data-parent="#accordion" href="#collapseThree" aria-expanded="true" aria-controls="collapseThree">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;关 于&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a>
        </div>
         <div id="collapseThree" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingThree">
          <div class="panel-body">
            JAVA
          </div>
          <div class="panel-body">
            Copyright © 2021 LeBron Tao All Rights Reserved.
          </div>
        </div>
      </div>


      <hr style="margin-top:0px; margin-bottom:0px; width:80%; border-top: 1px solid #000;">
      <hr style="margin-top:2px; margin-bottom:0px; width:80%; border-top: 3px solid #000;">
      <div class="modal-footer">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
      </div>
    </div>
  </div>
</div>
  
  <a id="rocket" href="#top" class=""></a>
  <script type="text/javascript" src="/js/totop.js?v=1.0.0" async=""></script>
  
</body>
</html>